package com.ayf.payment.game.api.mapper;

import com.ayf.payment.game.api.dto.MerchantConfigDTO;
import com.ayf.payment.game.api.dto.criteria.PartitionCriteria;
import com.ayf.payment.game.api.dto.criteria.SettleConfigCriteria;
import com.ayf.payment.game.api.entity.MerchantConfig;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper;

import java.util.List;

public interface MerchantConfigMapper extends Mapper<MerchantConfig> {
    /**
     * 根据商户号更新商户配置信息
     *
     * @param merchantConfig
     * @return
     */
    int updateConfigSelective(@Param("merchantConfig") MerchantConfig merchantConfig);

    /**
     * 根据商户号更新客服QQ信息
     *
     * @param merchantConfig
     * @return
     */
    int updateQQ(@Param("merchantConfig") MerchantConfig merchantConfig);

    int updatePlayerIntegralStatus(@Param("merchantConfig")MerchantConfig merchantConfig);

    int updatePlayerIntegralQq(@Param("merchantConfig")MerchantConfig merchantConfig);

    /**
     * 根据商户号更新最小充值金额
     *
     * @param merchantConfig
     * @return
     */
    int updateMinRechargeAmount(@Param("merchantConfig") MerchantConfig merchantConfig);

    /**
     * 批量更新商户费率标识id为默认费率
     *
     * @param ids
     * @param identificationId
     * @return
     */
    int updateIdentificationId(@Param("ids") List<Integer> ids, @Param("identificationId") Integer identificationId);

    /**
     * 批量更新下级商户代理商费率标识id
     *
     * @param ids
     * @param proxyIdentificationId
     * @return
     */
    int updateProxyIdentificationId(@Param("ids") List<Integer> ids, @Param("proxyIdentificationId") Integer proxyIdentificationId);

    /**
     * 查询出商户的配置信息
     *
     * @param partitionId
     * @return
     */
    MerchantConfig selectConfigByPartitionId(@Param("partitionId") String partitionId);

    /**
     * 查询该费率的使用信息
     *
     * @param identificationId
     * @return
     */
    List<Integer> selectIdsByIdentificationId(@Param("id") Integer identificationId);
    /**
     * 查询商户缓存配制信息列表
     */
    List<MerchantConfigDTO> selectMerchantConfigDTO();

    /**
     * 查询商户缓存配制信息
     */
    MerchantConfigDTO getMerchantConfigDTO(@Param("merchantId") int merchantId);

    /**
     * 更改商户结算类型
     *
     * @param settleConfigCriteria
     * @return
     */
    int updateSettleType(@Param("config") SettleConfigCriteria settleConfigCriteria);

    /**
     * 更改商户代付状态
     *
     * @param settleConfigCriteria
     * @return
     */
    int updatePayStatus(@Param("config") SettleConfigCriteria settleConfigCriteria);

    /**
     * 查看留言箱状态
     *
     * @param partitionCriteria
     * @return
     */
    MerchantConfig selectMsgStatus(@Param("partition") PartitionCriteria partitionCriteria);
}